package com.heima.user.v1.controller;

import com.heima.common.dtos.ResponseResult;
import com.heima.common.threadlocal.UserThreadLocalUtils;
import com.heima.model.user.dtos.UserRelationDto;
import com.heima.user.entity.FollowConstant;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserRelationController {
    public static final String REDIS_KEY_ISFOLLOW = "ISFOLLOW ";

    @Autowired
    private StringRedisTemplate redisTemplate;

    @PostMapping("/api/v1/user/user_follow")
    public ResponseResult follow(@RequestBody UserRelationDto dto){
        //获取当前用户的ID
        Integer userId = UserThreadLocalUtils.getUserId();
        //获取被关注用户的ID
        Long authorId = dto.getArticleId();
        //根据这两个ID拼接成一个REDIS_KEY，作为Redis缓存中的键。
        String REDIS_KEY =""+authorId;
        //判断用户的状态
        if (dto.getOperation()==0){
            //如果不为0，表示用户进行取消关注操作,方法将其存储到缓存中
            redisTemplate.opsForHash().put(REDIS_KEY,REDIS_KEY_ISFOLLOW, FollowConstant.FOLLOW_OPERATION_CANCEL);
        }else {
            //如果为0，表示用户进行关注操作,将其存储到缓存中
            redisTemplate.opsForHash().put(REDIS_KEY,REDIS_KEY_ISFOLLOW, FollowConstant.FOLLOW_OPERATION_SUCCESS);
        }
        return ResponseResult.ok();
    }

}